package com.xiumu.service.sys;

import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.baomidou.mybatisplus.extension.service.IService;
import com.xiumu.common.core.page.PageQuery;
import com.xiumu.pojo.sys.dto.DictDTO;
import com.xiumu.pojo.sys.dto.DictItemDTO;
import com.xiumu.pojo.sys.entity.DictEntity;
import com.xiumu.pojo.sys.query.DictQuery;
import com.xiumu.pojo.sys.vo.DictVO;

import java.util.List;

/**
 * 字典 Service 接口
 *
 * @author XiuMu
 * @since 2024/12/30 21:13
 */
public interface DictService extends IService<DictEntity> {
    /**
     * 分页查询
     * @param pageQuery 分页条件
     */
    Page<DictEntity> listPage(PageQuery<DictQuery, DictEntity> pageQuery);

    /**
     * 查询全部
     */
    List<DictVO> listALl();

    /**
     * 创建字典
     * @param dictDTO 字典信息
     * @return
     */
    Boolean create(DictDTO dictDTO);

    /**
     * 更新字典
     * @param dictDTO 字典信息
     * @return
     */
    Boolean updateDict(Long id, DictDTO dictDTO);

    /**
     * 删除字典
     * @param id 字典ID
     * @return
     */
    Boolean deleteById(Long id);

    /**
     * 创建字典项
     *
     * @param id 字典ID
     * @param itemDTO 字典项信息
     * @return
     */
    Boolean createItem(Long id, DictItemDTO itemDTO);

    /**
     * 更新字典项
     * @param id 字典项ID
     * @param dictItemDTO 字典项信息
     */
    Boolean updateDictItem(Long id, DictItemDTO dictItemDTO);
}
